// 邮箱验证
export function emailRule(value) {
    let length = value.length;
    if (length === 0) {
        return '邮箱不能为空'
    }

    const pattern = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    if (!pattern.test(value)) {
        return "请输入正确的邮箱"
    }

    return true
}
// 密码验证  6~14个字符，不能有中文、空格
export function passwordRule(value) {
    let length = value.length;
    if (length === 0) {
        return "密码不能为空"
    }
    if (length < 6) {
        return "密码至少为6个字符"
    }
    if (length > 14) {
        return "密码最大为14个字符"
    }
    const regExp1 = new RegExp(" ")
    if (regExp1.test(value)) {
        return "密码不能含有空格"
    }
    const regExp2 = new RegExp("[\u4e00-\u9fa5]")
    if (regExp2.test(value)) {
        return "密码不能含有中文"
    }
    return true
}
// 验证码验证
export function verificationRule(value) {
    const regExp = new RegExp("^[0-9]{5}$")
    if(!regExp.test(value)) {
        return "验证码为5位且只含有数字"
    }
    return true
}
// 用户名验证  只能包含"_"符号，最大14个字符，中文算两个字符，"\_"和英文算一个字符
export function usernameRule(value) {
    if(value.length === 0) {
        return "用户名不能为空"
    }
    const regExp1 = new RegExp("[^A-Za-z0-9\u4e00-\u9fa5_]")
    if(regExp1.test(value)) {
        return "只能包含_、数字、中文、字母"
    }
    let length = 0;
    // 匹配字母、数字、_
    const regExp2 = new RegExp("[A-Za-z0-9_]")
    // 匹配中文
    const regExp3 = new RegExp("[\u4e00-\u9fa5]")
    // 计算用户名长度
    for (let i = 0; i < value.length; i++) {
        if (regExp2.test(value[i])) {
            length++;
            continue;
        }
        if (regExp3.test(value[i])) {
            length = length + 2;
        }
    }
    if(length > 14) {
        return "用户名最长为7个中文或14个字母、数字、_"
    }
    return true
}

// 文件夹名称
export function fileNameRule(value) {
    if (value === undefined) {
        return false;
    }
    if (value.length === 0) {
        return '文件名称不能为空';
    }
    const regExp = new RegExp("[<>|*?/]")
    if (regExp.test(value)) {
        return '文件名称不能包含<,>,|,*,?,/';
    }
    return true;
}

export function categoryNameRule(value) {
    if (value === undefined || value === null || value.length === 0) {
        return "分类名不能为空";
    }
    if (value.length > 40) {
        return "分类名最长为40个字符";
    }
    return true;
}

export function linkUrlRule(value) {
    if (value === undefined || value === null || value.length === 0) {
        return "链接不能为空";
    }
    return true;
}

export function linkDescriptionRule(value) {
    if (value === undefined || value === null || value.length === 0) {
        return "链接详情不能为空";
    }
    if (value.length > 200) {
        return "链接详情不能超过200个字符"
    }
    return true;
}

export function emailMsgRule(value) {
    if (value === undefined || value === null || value.length === 0) {
        return "邮件内容不能为空";
    }
    if (value.length > 200) {
        return "邮件内容不能超过200个字符"
    }
    return true;
}